#!/usr/bin/python
#-----------------------------------------------------------------------
# Openbox Key Editor
# Copyright (C) 2009 nsf <no.smile.face@gmail.com>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
#-----------------------------------------------------------------------

import sys, os
import gtk
import gobject
import obkey_classes
import xml.dom.minidom

def die(widget, data=None):
	gtk.main_quit()

# get rc file
path = os.getenv("HOME") + "/.config/openbox/rc.xml"
if len(sys.argv) == 2:
	path = sys.argv[1]

#!!!!!!!!!!!!!!!! DEVELOPMENT VERSION !!!!!!!!!!!!!!!!!!!!!!
if not os.path.exists(path+".bak"):
	os.system("cp {0} {0}.bak".format(path))
#-----------------------------------------------------------

ob = obkey_classes.OpenboxConfig()
ob.load(path)

win = gtk.Window(gtk.WINDOW_TOPLEVEL)
win.set_default_size(640,480)
win.connect("destroy", die)

tbl = obkey_classes.PropertyTable()
al = obkey_classes.ActionList(tbl)
ktbl = obkey_classes.KeyTable(al, ob)

vbox = gtk.VPaned()
vbox.pack1(tbl.widget, True, False)
vbox.pack2(al.widget, True, False)

hbox = gtk.HPaned()
hbox.pack1(ktbl.widget, True, False)
hbox.pack2(vbox, False, False)

win.add(hbox)
win.show_all()
# get rid of stupid autocalculation
w, h = win.get_size()
hbox.set_position(w-250)
ktbl.view.grab_focus()
gtk.main()
